home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 376-400 / disk_381 / sksh / addendum1.5.doc < prev    next >
Text File  |  1992-05-06  |  32KB  |  859 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.                               Addendum for Version 1.5
  17.  
  18.                                         SKsh
  19.  
  20.                            A ksh-like Shell for the Amiga
  21.  
  22.                                      Version 1.6
  23.  
  24.  
  25.                                (Copyright) 1989, 1990
  26.  
  27.                                      Steve Koren
  28.  
  29.                                    October 4, 1990
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.           Addendum to Version 1.5
  74.  
  75.             This  document  describes  additions and changes to SKsh  since
  76.             version 1.4.
  77.  
  78.  
  79.             User Definable Keymaps
  80.  
  81.                SKsh  1.5   permits  the  keyboard  mapping  to  be  changed
  82.                arbitrarily.   Any  single  or  multiple key sequence can be
  83.                mapped to any on of 35  functions, and macros can be created
  84.                which  combine  other  functions.    Either modeless editors
  85.                (such as emacs)  or  multi-mode  editors (such as vi) can be
  86.                simulated.
  87.  
  88.                To  support this,  the  "setmap" command has been added.  It
  89.                has the following forms:
  90.  
  91.                  Reset all keymaps to their original (dumb) state:
  92.  
  93.                     setmap -r
  94.  
  95.                  Set any  number of keys in keymap "map" to call functions,
  96.                  other keymaps, or macros:
  97.  
  98.                     setmap -s map [{key|code} {fn|"@map"|"!macro"}] ...
  99.  
  100.                  Set keymaps "m1", "m2", etc to exit to keymap  "m0"  after
  101.                  one key:
  102.  
  103.                     setmap -e m0 [ m1 ]...
  104.  
  105.                  Set keymaps "m1", "m2",  etc  to  be  non-exiting  keymaps
  106.                  (ie, SKsh  keeps  using those keymaps even after they have
  107.                  executed a function).
  108.  
  109.                     setmap -n  [ m1 ]...
  110.  
  111.                  Define macro "mac" to call functions or insert strings:
  112.  
  113.                     setmap -m mac [ fn | string ] ...
  114.  
  115.                Keymap  functions have short names such as "INS", which  in-
  116.                serts  the  character just typed, or "EOL" which  moves  the
  117.                cursor to the end of  the  current line.  Key mapping, along
  118.                with  the  associated  functions, is  described in much more
  119.                detail in the UserMan.doc and Reference.doc  files.   Please
  120.                see those files for more information.
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.           SKsh Amiga Shell             Page 2              Addendum to 1.5
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.             Supplied functions define "emacs" mode and "vi" mode
  140.  
  141.                By  default, the ".skshinit" file sets SKsh to be in "emacs"
  142.                mode, a  slight  superset of the previous SKsh editing mode.
  143.                However,  this  can  be  changed;   two   functions  in  the
  144.                stuff.sksh file  define an emacs mode and a vi mode.  Other,
  145.                similar  functions could be added to  define most other edi-
  146.                tor styles.
  147.  
  148.  
  149.             "E" option to SKsh obsoleted
  150.  
  151.                The  "E"  option to SKsh has been  obsoleted by the addition
  152.                of  user  definable keymaps.  The "E" option previously con-
  153.                trolled whether  the  "tab"  key  was  used  for  file  name
  154.                completion or  as  an  actual "tab" character.  In SKsh 1.5,
  155.                you  may  simply  change  the  definition of the  "tab"  key
  156.                accordingly.
  157.  
  158.  
  159.             ARexx support added
  160.  
  161.                SKsh can now  accept commands from an ARexx script.  It does
  162.                this  asynchronously;  no  special  command must be entered.
  163.                However, it will only check  for  ARexx  commands when it is
  164.                not  busy  doing  something else (ie, it is waiting for key-
  165.                board  input).  SKsh  assumes a default port name, but there
  166.                are  several ways to specify this  upon  invocation (for de-
  167.                tails, see the "sksh"  entry in the reference manual and the
  168.                ARexx  section of the UserMan.doc manual).  There is also  a
  169.                new  variable called "AREXX_PORT" which contains the name of
  170.                the  port  that  this  execution of SKsh uses.  The variable
  171.                will be  unset if SKsh was not able or was instructed not to
  172.                open ARexx.   The  "rx"  command can be used to invoke ARexx
  173.                scripts.   For  more   information, see the "Using SKsh with
  174.                ARexx" section of the UserMan.doc file.
  175.  
  176.                The ARexx port is only provided  in  the  large  version  of
  177.                SKsh, not tiny_sksh.  There are a few problems with  it  and
  178.                a significant number of possible enhancements (for  example,
  179.                the  ability to set ARexx variables from SKsh).  If you have
  180.                any ideas for  improvements to the ARexx port, please let me
  181.                know.   I  will   almost for certain enhance the ARexx func-
  182.                tionality in a future release.
  183.  
  184.  
  185.             Local export command added
  186.  
  187.                A new "-l"  option to the export command can be used to con-
  188.                trol whether SKsh  sets  AmigaDos  environment variables for
  189.                exported  variables,  or  simply sets the top  level  symbol
  190.                table  definition  inside of SKsh.  Most  variables will not
  191.                need  to  be  exported to AmigaDos; the  "-l"  export option
  192.                will use less space and  make the export operation faster. 
  193.  
  194.  
  195.           SKsh Amiga Shell             Page 3              Addendum to 1.5
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.             Append redirection from external binaries fixed
  208.  
  209.                An  incompatibility  between  the  Lattice and AmigaDos  I/O
  210.                functions   previously  prevented  append  redirection  from
  211.                working  correctly when  used  with  external programs.  The
  212.                part of  SKsh  which  controls this was rewritten to use the
  213.                AmigaDos  functions  instead of the (more  standard) Lattice
  214.                functions;  append  redirection  from  external binaries now
  215.                works correctly.  (Note that is was not  a  problem with ei-
  216.                ther the AmigaDos  or  Lattice functions, but simply a prob-
  217.                lem in the interface between the two).
  218.  
  219.  
  220.             All function keys now available
  221.  
  222.                In SKsh 1.4, the "f10" key was not mappable.  In  SKsh  1.5,
  223.                it is.  Also in this  version, the shifted function keys may
  224.                be used by setting variables "f11" through "f20".
  225.  
  226.  
  227.             Cursor moved to end of line upon return
  228.  
  229.                A  small  incompatibility  between the AmigaDos console han-
  230.                dler and the  popular "Conman" handler was causing a problem
  231.                if  "return" was pressed while the  cursor was in the middle
  232.                of a line.  The rest of the line would be blanked  (although
  233.                it  executed  correctly).  SKsh now provides a workaround to
  234.                that  problem  by  moving the  cursor to the end of the line
  235.                after a "return".
  236.  
  237.                There  is  still  two  problems when using SKsh with conman.
  238.                First,  the  conman  typeahead buffer  appears to be emptied
  239.                when  SKsh  puts  the  console in "raw" mode (as  it  must).
  240.                However, since this seems  to  be  something conman is doing
  241.                by  itself, I don't think I can change it from  SKsh.   Sec-
  242.                ond,  the  state  of  conman is  sometimes changed such that
  243.                conman  echoes  characters even while in raw mode.   I  also
  244.                cannot fix this, as I do not know what causes it.  For  this
  245.                reason  it  is  recommended that the normal AmigaDos console
  246.                handler be used with SKsh,  especially since SKsh line edit-
  247.                ing  is  a  superset  of  conman line editing.  The AmigaDos
  248.                console handler exhibits neither of these symptoms.
  249.  
  250.  
  251.             Fixed "history" bug introduced in SKsh 1.4
  252.  
  253.                A bug  that  was  introduced in SKsh 1.4 caused "history -e"
  254.                not to act correctly.  It is now fixed.  Sorry!   This  also
  255.                affected '!' history access, as '!' was simply an alias  for
  256.                history -e.
  257.  
  258.  
  259.  
  260.  
  261.           SKsh Amiga Shell             Page 4              Addendum to 1.5
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.             "eval" builtin added
  272.  
  273.                The "eval"  command executes a string as if it was a command
  274.                typed from  the  keyboard or entered into a script.  For ex-
  275.                ample,
  276.  
  277.                  [dh0:]: a='echo "foo\nbar" | wc'
  278.                  [dh0:]: eval "$a"
  279.                        Filename        Chars      Words      Lines
  280.                           stdin :          8          2          2
  281.                  [dh0:]:
  282.  
  283.  
  284.             "pushd" and "popd" now check for existance of directory
  285.  
  286.                The "pushd" and "popd"  functions which were provided in the
  287.                Stuff.sksh file for 1.4 did not check for the  existance  of
  288.                the  directory  before  trying to "cd" to  it.   This  never
  289.                caused any  major problems, but it would cause the directory
  290.                stack  variable  to  become out of  sync  with  reality if a
  291.                "pushd" tried  to  "cd"  to  a  nonexistent directory.  Both
  292.                functions now check for the existence of the directory.
  293.  
  294.  
  295.             Lattice "chdir()" call no longer used
  296.  
  297.                SKsh  previously used  the  Lattice "chdir()" call to change
  298.                the  current  directory.   However, the Lattice call did not
  299.                correctly  update the AmigaDos structure containing the cur-
  300.                rent  directory name, which caused "ps" to  report the wrong
  301.                directory  name  for  background tasks.  The Lattice call is
  302.                no longer used, and "ps"  reports the correct directory from
  303.                which the other tasks were executed.
  304.  
  305.  
  306.             SKsh no longer gets confused upon external "cd"
  307.  
  308.                SKsh  1.4  became  confused and even occasionally crashed if
  309.                an  external  program changed  the  SKsh  working directory.
  310.                While this  is  not  a  common case, SKsh 1.5 has fixed this
  311.                problem.   If  an   external program changes the SKsh direc-
  312.                tory, when  control returns to SKsh it will correctly update
  313.                its  directory (in all places, including the prompt if it is
  314.                defined  there).    However, in this case the "OLDPWD" vari-
  315.                able  will  not  correctly  contain the name of the previous
  316.                directory.
  317.  
  318.  
  319.             "Stack" function removed
  320.  
  321.                All  previous  versions of SKsh  included a "stack" function
  322.                defined  in  the  .skshinit  file  which   simply  used  the
  323.                AmigaDos  stack  function to set the stack size to the  sup-
  324.                plied value plus 10K bytes.  Since  this  function didn't do
  325.  
  326.  
  327.           SKsh Amiga Shell             Page 5              Addendum to 1.5
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.                much, and it took  space  for  every SKsh invocation, it has
  338.                been removed.  Use the AmigaDos  stack  function in the same
  339.                way;  just  be  careful not to set the stack size below that
  340.                required by SKsh.
  341.  
  342.  
  343.             Backslash handling enhanced
  344.  
  345.                A  backslash  outside of any other  parameter but at the end
  346.                of a line tells SKsh to read the next line as if  it  was  a
  347.                continuation  of  the  current one.  This can  be  useful to
  348.                pass  many  parameters to  functions or scripts when all the
  349.                parameters  would  not  normally fit on one line.   The  new
  350.                "Stuff.sksh"  file  uses  this  feature in the  vi_mode  and
  351.                emacs_mode functions.
  352.  
  353.  
  354.             Backquote bug fixed
  355.  
  356.                An  obscure  bug  in  backquote substitution has been fixed.
  357.                If  multiple complete SKsh shell constructs were inclosed in
  358.                backquotes and  separated by newlines instead of semicolons,
  359.                only the first one would be evaluated.   This  problem never
  360.                appeared with the $( ) style of  command substitution (which
  361.                is  the  recommended  method),  so  it  was  not  commonly a
  362.                problem.
  363.  
  364.  
  365.             Expert commands smaller
  366.  
  367.                The  expert  commands have been further reduced in size from
  368.                their 1.4 counterparts.  Most are smaller  by  approximately
  369.                500 to 1000 bytes (10 to 30%).
  370.  
  371.  
  372.             fgrep/grep changes
  373.  
  374.                A bug in the fgrep/grep  commands was causing them to ignore
  375.                patterns which spanned 16K byte  boundaries in a file.  This
  376.                has been fixed.   In  addition, the commands no longer print
  377.                2  newlines  between file names when no pattern was found in
  378.                the file.  Also, they no longer cycle though all  the  files
  379.                if the ctrl-c is pressed; instead, they exit immediately.
  380.  
  381.  
  382.             cp bug fixed
  383.  
  384.                The  1.4  cp  command would not copy multiple files to a di-
  385.                rectory  if  those  files  already existed in the directory.
  386.                This has been fixed.
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.           SKsh Amiga Shell             Page 6              Addendum to 1.5
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.             view enhancements
  404.  
  405.                The  "vmagic:"  assignment now points to  a  directory which
  406.                contains the magic file, not the file itself.  Note that  if
  407.                you  define this assignment in a startup file, you will have
  408.                to change it.  "view" now finds the  magic  file  by  taking
  409.                the filename of  "view"  and  adding the ".magic" extension.
  410.                This means  that  view  can  be  copied to another name, and
  411.                that  copy  can  automatically use  a  different magic file.
  412.                For  example, if "view" is copied to "vlist", the magic file
  413.                name  will  become "vmagic:vlist.magic".  This can be useful
  414.                to  create  versions of view which  edit,  extract, list, or
  415.                otherwise  manipulate files.  It will  become even more use-
  416.                ful when  AmigaDos  supports file links.  Also, view now ac-
  417.                cepts a  command line option which allows an arbitrary magic
  418.                file  to  be  specified,  overriding the built in  defaults.
  419.                See the documentation on the "view" command for details.
  420.  
  421.  
  422.             "preparse" command added
  423.  
  424.                A "preparse"  command has been added which can parse an SKsh
  425.                script file  and  save  the  parsed  output to another file.
  426.                The  second file (which is  often smaller than the original)
  427.                can be read by SKsh up to 3 times as fast as the original.
  428.  
  429.                Please note that preparsed files  are  not  guaranteed to be
  430.                upwardly  compatible  between  versions of SKsh.  This means
  431.                that the  originals must be kept (in any case, the preparsed
  432.                files  are  extremely  difficult to edit).  SKsh will  check
  433.                that a  prepared file was created by the current versions of
  434.                SKsh,  and  issue an  error if it was not.  See the descrip-
  435.                tion  of  this  command in the Reference.doc file  for  more
  436.                details.
  437.  
  438.                You  can  automatically source the preparse form of a script
  439.                if it is  there,  or  the  normal one if it is not, by using
  440.                the following code fragment:
  441.  
  442.                if [ -f myscript.pp ]
  443.                then
  444.                   . myscript.pp
  445.                else
  446.                   . myscript
  447.                fi
  448.  
  449.  
  450.             Preparsed versions of the init files now handled
  451.  
  452.                SKsh will now  check  for  ".skshinit.pp"  and  ".skshrc.pp"
  453.                files  which  are  preparsed  forms  of  the  initialization
  454.                files, and use  those  instead if found.  If not, the origi-
  455.                nals will be used.   This  can  dramatically reduce the time
  456.                necessary  to  invoke SKsh.  Also, if you source all or part
  457.  
  458.  
  459.           SKsh Amiga Shell             Page 7              Addendum to 1.5
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.                of the "Stuff.sksh" file from your  .skshrc  file,  you  can
  470.                now source a preparsed form of  that  file.   Both  sourcing
  471.                and  script  execution  automatically detect preparsed files
  472.                and use them accordingly.  You can change your .skshrc  file
  473.                to do the same thing.  For example:
  474.  
  475.                  if [ -f sksh:stuff.sksh.pp ]
  476.                  then
  477.                     . sksh:Stuff.sksh.pp
  478.                  else
  479.                     . sksh:Stuff.sksh
  480.                  fi
  481.  
  482.  
  483.             File completion enhanced
  484.  
  485.                SKsh file name  completion has been enhanced.  If completion
  486.                is  used  and  matches  a  directory name, a "/" will be in-
  487.                serted  automatically after the name.  If completion wholely
  488.                matches a filename, a space will be  inserted.   This  makes
  489.                it easy to tell when  a  whole  file  or  directory name has
  490.                been matched, and which it was.
  491.  
  492.                Also, file names which are  typed  directly after a redirec-
  493.                tion  symbol (such  as  ">myfile") will be correctly handled
  494.                by the completion mechanism.  Previously this did not work.
  495.                 
  496.  
  497.             "printf" builtin added
  498.  
  499.                A "printf"  builtin has been added.  It supports most of the
  500.                constructs used by the "c"  function of the same name.  How-
  501.                ever, there are a few limitations.  SKsh uses 32  bit  inte-
  502.                gers  internally;  therefore, "%ld" must be used  instead of
  503.                "%d".   Also,  since  all  tokens are represented in SKsh as
  504.                strings, SKsh  will  assume that a string beginning with "-"
  505.                or a digit is to be used with the "%ld" style  of  arguments
  506.                and  convert the string to a 32 bit  integer.   Arguments to
  507.                printf are separated by white space, not "," as in "c".
  508.  
  509.                There is  no  associated sprintf or fprintf functions.  Sim-
  510.                ply use "var=$(printf)" or "printf >>  file"  instead.   See
  511.                the  description of  this  command in the Reference.doc file
  512.                for more details.
  513.  
  514.  
  515.             All external binaries now pure
  516.  
  517.                All of the  external SKsh binaries are now pure, and all can
  518.                be  made  resident with the  SKsh  resident command.  If the
  519.                pure bit is not set on all the binaries, you should  set  it
  520.                using the chmod command.
  521.  
  522.  
  523.  
  524.  
  525.           SKsh Amiga Shell             Page 8              Addendum to 1.5
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.             Documentation changes
  536.  
  537.                I  had  accidentally left the entry for the "resident" buil-
  538.                tin out of the Reference.doc  file  for  version 1.4.  It is
  539.                now back.  I also added a few  of  the  missing descriptions
  540.                in the options command description in Reference.doc.
  541.  
  542.  
  543.             Keyboard command to reverse two characters
  544.  
  545.                A new command has been added which switches the position  of
  546.                the previous two characters.  By default, this is mapped  to
  547.                the ^t combination.
  548.  
  549.  
  550.             "run" function changed
  551.  
  552.                The   supplied  run  function  previously  referenced  c:run
  553.                directly.  Now it uses  $(which  run).   This  allows you to
  554.                have the run  command anyplace in your path, or in the resi-
  555.                dent list.
  556.  
  557.  
  558.             EOF no longer crashes shell when +e option used
  559.  
  560.                In SKsh 1.4, it was possible to crash the shell  if  command
  561.                line editing was disabled (+e  option)  and  an  end-of-file
  562.                was sent to the shell with "^\".  This no longer happens.
  563.  
  564.  
  565.             Keyboard EOF will now terminate read loop
  566.  
  567.                If a while loop is constructed using the read statement:
  568.  
  569.                while read foo; do echo $foo; done
  570.  
  571.                the loop can now be terminated with an  EOF  sent  from  the
  572.                keyboard.  Previously the loop worked fine if its input  was
  573.                redirected from a file, but not  from  the  keyboard.   This
  574.                only was a problem if the +e option was used.
  575.  
  576.  
  577.             File name mapping problem fixed
  578.  
  579.                The  "."  character when used to represent the present work-
  580.                ing  directory  occasionally gave  incorrect results when in
  581.                the  root  directory of a  given  device.   For  example, if
  582.                "cd"ed to ram:, the string ./foo  would  expand to ram:/foo,
  583.                which  has  an  extra '/' character.  This  problem has been
  584.                fixed.
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.           SKsh Amiga Shell             Page 9              Addendum to 1.5
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.             Empty lines no longer added to history list
  602.  
  603.                Some  combinations of  history flags and variables would al-
  604.                low empty lines to be added to the  history buffer.  This no
  605.                longer happens.
  606.  
  607.  
  608.             CMDNUM variable only incremented for added history lines
  609.  
  610.                The  CMDNUM  variable is only incremented if the typed  line
  611.                is  actually added  to  the  history buffer.  This keeps the
  612.                value of the variable in sync with the history list.
  613.  
  614.  
  615.             cat command now provided as external command
  616.  
  617.                The  cat  command is now  provided both as a builtin command
  618.                and  as  an  external binary.  The external form has several
  619.                advantages,  including that it is much faster and  can  copy
  620.                binary data as well as ascii  data.   To  use  the  external
  621.                command by default, unset the builtin form  with  "unset  -b
  622.                cat".
  623.  
  624.  
  625.             num command added
  626.  
  627.                The  num external command can add line numbers to either its
  628.                standard  input or named files.   The  number of digits used
  629.                is  changeable; see the documentation on that command in the
  630.                ExtCmds.doc file for details.
  631.  
  632.  
  633.             cut command added
  634.  
  635.                A  cut  command,  similar to  the  Un*x  command of the same
  636.                name,  is  now  provided as an external binary.  This cut is
  637.                actually  a  slight  superset of the Un*x command, as it al-
  638.                lows  columns to be  re-ordered,  something the Un*x command
  639.                will not do with most implementations.   Both  character and
  640.                field oriented operation is supported.
  641.  
  642.  
  643.             indent command added
  644.  
  645.                An  indent  command is  now  provided as an external binary.
  646.                It simply indents input lines by a given amount.
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.           SKsh Amiga Shell            Page 10              Addendum to 1.5
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.             encr command added
  668.  
  669.                The  encr  command  provides a  function similar to the Un*x
  670.                crypt  command,  although with a vastly different algorithm.
  671.                It  will  encrypt from a file to a file, or it can act as  a
  672.                filter  to  encrypt  standard input to standard output.  The
  673.                key can be of any  length  limited only by the maximum pass-
  674.                able  command  line.   Unlike crypt, the encrypted files are
  675.                not  guaranteed (and in fact in  most  cases  will  not  be)
  676.                ASCII files.   However, encr can encrypt binary data as well
  677.                as ASCII data.  See  the  encr entry in the ExtCmds.doc file
  678.                for  details.   That  entry also briefly discusses the secu-
  679.                rity of the  encrypted files; I would like to hear if anyone
  680.                manages to break  the  encryption scheme.  I have provided a
  681.                file of 819  bytes  of  encrypted english text with SKsh 1.5
  682.                for anyone who wishes to take up the challenge.
  683.  
  684.  
  685.             dwclist command added
  686.  
  687.                A  dwclist  command has been added which allows wildcard ex-
  688.                pansion to be  selectively disabled for individual commands.
  689.                The  operation  and  options of this  command are similar to
  690.                those of  the  complist command.  Before performing wildcard
  691.                expansion  on  arguments, SKsh will search for  the  command
  692.                name in the  dwclist.  If found, wildcards will be passed on
  693.                unexpanded.
  694.  
  695.                The  dwclist can be listed or cleared, and  arguments can be
  696.                added or  deleted from the list.  Use of long a long dwclist
  697.                will slightly  degrade the SKsh interpreter performance, al-
  698.                though  commands in the list will run much faster if  passed
  699.                parameters with wildcards.
  700.  
  701.                The  dwclist is very useful for external programs which per-
  702.                form their own wildcard expansion.   By  putting the command
  703.                in  the  dwclist, SKsh will let that command perform its own
  704.                wildcard  expansion,  thus  circumventing the 255  character
  705.                command line limit  in  AmigaDos  1.3.   There  are  several
  706.                things to note about  this  command; for details see the en-
  707.                try in Reference.doc.
  708.  
  709.  
  710.             +w option added
  711.  
  712.                A "w"  option has been added to the set of SKsh options.  If
  713.                set,  then  the  dwclist will be used to  determine commands
  714.                for which wildcards  are  not  to  be  expanded.   If  unset
  715.                (which  is  the  default), the  dwclist will be ignored, re-
  716.                sulting in slightly faster performance.
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.           SKsh Amiga Shell            Page 11              Addendum to 1.5
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.  
  732.  
  733.           Verifying the SKsh 1.5 Installation
  734.  
  735.             SKsh  1.5  includes a script file called "Check_1.5.sksh".  You
  736.             should set the script bit on this file if it is not set  (using
  737.             "chmod +s Check_1.5.sksh"), and run the script.  It will  check
  738.             your  SKsh  installation for missing files, files with improper
  739.             checksums  (perhaps  indicating an  old  version of that file),
  740.             and  files  with  improper permissions.  It will check the main
  741.             SKsh  binaries,  the  external  commands, and  will  optionally
  742.             check the  documentation files if you indicate that you wish to
  743.             do this.  It will also check that the  external binaries are in
  744.             your SKsh search path.  You must run this script  under version
  745.             1.5  after  installing version 1.5.  In other words, if you use
  746.             1.4 to  install 1.5, you must quit version 1.4, execute version
  747.             1.5, and run the script.
  748.  
  749.  
  750.           A Word about Command Invocation under SKsh
  751.  
  752.             SKsh  does  not  actually invoke external commands itself.  In-
  753.             stead, it builds a  command line with all passed parameters and
  754.             passes this  command line to ARP.  However, there are differing
  755.             requirements  for  various types of AmigaDos  programs (such as
  756.             BCPL  versus  Lattice C).  Occasionally ARP will fail to invoke
  757.             a  particular program correctly.  It does quite a good job con-
  758.             sidering  the  situation, but sometimes it will fail.  I unfor-
  759.             tunately  cannot  do  anything about this in SKsh, so if  there
  760.             are few  programs you cannot invoke correctly, you will have to
  761.             invoke them from the AmigaDos shell.
  762.  
  763.             Fortunately,  however,  AmigaDos  2.0  will  provide a standard
  764.             method  of  program invocation.  When I can compile SKsh to use
  765.             that  feature,  the  problem will be eliminated.   (That  will,
  766.             however, mean that SKsh will run only under AmigaDos 2.0)   Un-
  767.             til then, there is nothing I can do to help.  Sorry!
  768.  
  769.  
  770.           Misc. Notes
  771.  
  772.             Make sure that you re-install  the  .skshinit  file.   You  can
  773.             make and use the pre-parsed form of  this  file  if  you  wish.
  774.             The "Stuff.sksh" file has also  changed  with  the  addition of
  775.             the  emacs_mode and vi_mode functions.  All of the external bi-
  776.             naries have changed as well and must be re-installed.
  777.  
  778.             There has been some  confusion about the interaction of the 'h'
  779.             option and  the  history variables (such as MAXDIST and LLMIN).
  780.             If  the  'h'  option is set, every non-blank line will be added
  781.             to  the  history list, even if it does not meet the  qualifica-
  782.             tions  imposed  by  the  history variables.   This  effectively
  783.             overrides  any  effect  those  variables might have.  To effec-
  784.             tively use the variables, keep the 'h' flag reset.
  785.  
  786.  
  787.  
  788.  
  789.           SKsh Amiga Shell            Page 12              Addendum to 1.5
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.             A brief note about SKsh and the Amiga 3000: I have not  person-
  800.             ally  tested  this,  but  various people have  reported that 1)
  801.             SKsh works with 1  megabyte of chip memory running under either
  802.             AmigaDos 1.3 or AmigaDos 2.0, and 2) SKsh does not run  with  2
  803.             megabytes of chip memory.  At the  moment I have no idea why it
  804.             would  not  run  with  2  megabytes of chip memory, and I don't
  805.             have  access to a 3000 to test it with, so the short term prog-
  806.             nosis for  this  problem is bleak.  As far as I can tell, noth-
  807.             ing in the code should care the least bit about how  much  chip
  808.             memory is around.  There does seem to  be  a  problem, however,
  809.             One  reported workaround (which I have also not tested)  is  to
  810.             run  NofasTmem  before  invoking SKsh, and  again  after to re-
  811.             allocate the memory.
  812.  
  813.             I  removed the readme.pipes  file,  which  described how to use
  814.             real pipes.  I  also  removed the associated code.  Until I get
  815.             it  working for real, the code was just taking up space and not
  816.             doing  anyone any  good.   Hopefully I will get this working in
  817.             the  next  release or  two  (perhaps it will become easier with
  818.             AmigaDos 2.0).
  819.  
  820.             Again, thanks to all  who  have  provided bug reports and ideas
  821.             for enhancements.  I would like to make SKsh the best and  most
  822.             complete  command interpreter available for the Amiga, and this
  823.             feedback helps greatly.  If you  have  suggestions for improve-
  824.             ments, please  forward them to me.  I cannot implement them all
  825.             for each  release, however, so if I don't get to your "pet" en-
  826.             hancement in the very  next  release, please be patient.  There
  827.             is a good chance it will get in eventually.
  828.  
  829.  
  830.           Finally...
  831.  
  832.             My home  address and phone number are likely to change sometime
  833.             in the next 6 to 8 months.  I will try  to  include the new ad-
  834.             dress and phone  number in release 1.6 of SKsh, provided that I
  835.             know what it is by then.  If you try to reach  me  at  the  old
  836.             number or address and get no response, this is why!
  837.  
  838.             SKsh 1.6: tentatively planned for 6  months  from  the  release
  839.             date of 1.5.
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.           SKsh Amiga Shell            Page 13              Addendum to 1.5
  856.  
  857.  
  858.  
  859.